package com.cinc.ebc.mm.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @Description: 库存单据明细
 * @Author: jeecg-boot
 * @Date:   2022-04-05
 * @Version: V1.0
 */
@ApiModel(value="mm_stock_in_out_detail对象", description="库存单据明细")
@Data
@TableName("mm_stock_in_out_detail")
public class MmStockInOutDetailPage {
    private static final long serialVersionUID = 1L;

    // 主表
    /**单据号*/
    @Excel(name = "单据号", width = 15)
    @ApiModelProperty(value = "单据号")
    private java.lang.String billNo;
    /**单据日期*/
    @Excel(name = "单据日期", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "单据日期")
    private java.util.Date billDate;
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "单据开始日期")
    private java.util.Date billDateBegin;
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "单据截止日期")
    private java.util.Date billDateEnd;
    /**库房*/
    @Excel(name = "库房", width = 15, dictTable = "mdm_warehouse", dicText = "warehouse_name", dicCode = "id")
    @Dict(dictTable = "mdm_warehouse", dicText = "warehouse_name", dicCode = "id")
    @ApiModelProperty(value = "库房")
    private java.lang.String storageId;
    /**出入标志*/
    @Excel(name = "出入标志", width = 15, dicCode = "mm_io_flag")
    @Dict(dicCode = "mm_io_flag")
    @ApiModelProperty(value = "出入标志")
    private java.lang.String ioFlag;
    /**移动类型*/
    @Excel(name = "移动类型", width = 15, dictTable = "mdm_movement_type", dicText = "type_name", dicCode = "id")
    @Dict(dictTable = "mdm_movement_type", dicText = "type_name", dicCode = "id")
    @ApiModelProperty(value = "移动类型")
    private java.lang.String moveId;
    /**移动类型编号拼接串*/
    @ApiModelProperty(value = "移动类型编号拼接串")
    private String moveTypeNoJoin;
    /**移动类型编号*/
    @ApiModelProperty(value = "移动类型编号")
    private String moveTypeNo;
    /**供应商*/
    @Excel(name = "供应商", width = 15, dictTable = "mdm_supply", dicText = "supply_full_name", dicCode = "id")
    @Dict(dictTable = "mdm_supply", dicText = "supply_full_name", dicCode = "id")
    @ApiModelProperty(value = "供应商")
    private java.lang.String supplyId;
    /**客户*/
    @Excel(name = "客户", width = 15, dictTable = "mdm_customer", dicText = "cust_full_name", dicCode = "id")
    @Dict(dictTable = "mdm_customer", dicText = "cust_full_name", dicCode = "id")
    @ApiModelProperty(value = "客户")
    private java.lang.String customerId;
    /**凭证号*/
    @Excel(name = "凭证号", width = 15)
    @ApiModelProperty(value = "凭证号")
    private java.lang.String voucherNo;
    /**凭证日期*/
    @Excel(name = "凭证日期", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "凭证日期")
    private java.util.Date voucherDate;
    /**其它出入库标志*/
    @Excel(name = "其它出入库标志", width = 15)
    @ApiModelProperty(value = "其它出入库标志")
    private java.lang.String otherFlag;
    /**项目*/
    @ApiModelProperty(value = "项目")
    private String projectId;
    /**项目名称*/
    @ApiModelProperty(value = "项目名称")
    private String projectName;
    /**供应商名称*/
    @ApiModelProperty(value = "供应商名称")
    private String supplyFullName;

    // 明细表
    /**主键ID*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键ID")
    private java.lang.String id;
    /**主表ID*/
    @ApiModelProperty(value = "主表ID")
    private java.lang.String pid;
    /**行号*/
    @Excel(name = "行号", width = 15)
    @ApiModelProperty(value = "行号")
    private java.lang.Integer lineNo;
    /**物料*/
    @Excel(name = "物料", width = 15)
    @ApiModelProperty(value = "物料")
    private java.lang.String materialId;
    /**物料编号*/
    @Excel(name = "物料编号", width = 15)
    @ApiModelProperty(value = "物料编号")
    private java.lang.String materialNo;
    /**物料描述*/
    @Excel(name = "物料描述", width = 15)
    @ApiModelProperty(value = "物料描述")
    private java.lang.String materialDesc;
    /**单位*/
    @Excel(name = "单位", width = 15)
    @ApiModelProperty(value = "单位")
    private java.lang.String unit;
    /**数量*/
    @Excel(name = "数量", width = 15)
    @ApiModelProperty(value = "数量")
    private java.math.BigDecimal qty;
    /**含税单价*/
    @Excel(name = "含税单价", width = 15)
    @ApiModelProperty(value = "含税单价")
    private java.math.BigDecimal unitPrice;
    /**含税金额*/
    @Excel(name = "含税金额", width = 15)
    @ApiModelProperty(value = "含税金额")
    private java.math.BigDecimal sumPrice;
    /**业务单据ID*/
    @Excel(name = "业务单据ID", width = 15)
    @ApiModelProperty(value = "业务单据ID")
    private java.lang.String sourceId;
    /**批次*/
    @Excel(name = "批次", width = 15)
    @ApiModelProperty(value = "批次")
    private java.lang.String batchNo;
    /**备注*/
    @Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private java.lang.String remark;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private java.lang.String createBy;
    /**创建时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private java.util.Date createTime;
    /**修改人*/
    @ApiModelProperty(value = "修改人")
    private java.lang.String updateBy;
    /**修改时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "修改时间")
    private java.util.Date updateTime;
    /**所属部门*/
    @ApiModelProperty(value = "所属部门")
    private java.lang.String sysOrgCode;
    /**租户ID*/
    @Excel(name = "租户ID", width = 15)
    @ApiModelProperty(value = "租户ID")
    private java.lang.Integer tenantId;
    /**库房*/
    @Excel(name = "库房", width = 15)
    @ApiModelProperty(value = "库房")
    private java.lang.String warehouseId;
    /**库位*/
    @Excel(name = "库位", width = 15)
    @ApiModelProperty(value = "库位")
    private java.lang.String storageLocationId;
    /**冲销单据明细ID*/
    @Excel(name = "冲销单据明细ID", width = 15)
    @ApiModelProperty(value = "冲销单据明细ID")
    private java.lang.String cancelDetailId;
    /**对冲标志*/
    @Excel(name = "对冲标志", width = 15)
    @ApiModelProperty(value = "对冲标志")
    private java.lang.String handleFlag;
    /**采购员*/
    @Excel(name = "采购员", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "username")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
    @ApiModelProperty(value = "采购员")
    private String buyer;
    /**核销状态*/
    @Excel(name = "核销状态", width = 15, dicCode = "fi_bill_verify_status")
    @Dict(dicCode = "fi_bill_verify_status")
    @ApiModelProperty(value = "核销状态")
    private java.lang.String verifyStatus;
    /**核销金额*/
    @Excel(name = "核销金额", width = 15)
    @ApiModelProperty(value = "核销金额")
    private java.math.BigDecimal verifyAmount;
    /**最近核销日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "最近核销日期")
    private java.util.Date verifyDate;
}
